/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cl.innovision.helper.utils;

import cl.innovision.vo.shema.proyectos.Proyectos;
import cl.innovision.vo.shema.proyectos.Proyectos.Proyecto;
import java.io.File;
import java.util.logging.Logger;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;

/**
 *
 * @author PATO
 */
public class ListProyectos {

     private static ListProyectos singleton = null;
     private static Proyectos proyectos = null;

    public static Proyectos getProyectos() {
        return proyectos;
    }

    public static void setProyectos(Proyectos proyectos) {
        ListProyectos.proyectos = proyectos;
    }
     
     
    public static ListProyectos getInstance() throws Exception {
        if (singleton == null) {
            singleton = new ListProyectos() ;
        }
        return singleton;
    }
     
     
    public ListProyectos() {
         proyectos=new Proyectos();
         try {
 
		File file = new File("Proyectos.xml");
		JAXBContext jaxbContext = JAXBContext.newInstance(Proyectos.class);
 
		Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
		proyectos = (Proyectos) jaxbUnmarshaller.unmarshal(file);
		System.out.println("Xml Proyectos Cargado !");
 
	  } catch (JAXBException e) {
		e.printStackTrace();
	  }
    }

    public void guardaArchivo()  {
         try {
 
		File file = new File("Proyectos.xml");
		JAXBContext jaxbContext = JAXBContext.newInstance(Proyectos.class);
		Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
 
		// output pretty printed
		jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
 
		jaxbMarshaller.marshal(proyectos, file);
		jaxbMarshaller.marshal(proyectos, System.out);
 
	      } catch (JAXBException e) {
		e.printStackTrace();
	      }
 
    }
    
    
   public Proyecto getProyecto(int i)  { 
        return proyectos.getProyecto().get(i);
    }
    
    public void setProyecto(Proyecto proyecto)  { 
        for(Proyecto p : proyectos.getProyecto())
            if(p.getNombre().equals(proyecto.getNombre()))
            {
                proyectos.getProyecto().set(proyectos.getProyecto().indexOf(p), proyecto);
                return;
            }
        proyectos.getProyecto().add(proyecto);
    }
       
                

}
